Multi-Session Web Acceleration

ABSTRACT

A method for speeding up data downloads across the Internet utilizing a proxy server to receive client requests for downloading remote data files and then establishing multiple concurrent sessions from the proxy server which balance the download of the remote data in multiple segments across two or more available wide-area network (WAN) links.

REFERENCES CITED

Squid Proxy 2.5, release September 2002.FMD (Download Management), released June 2004.

New Features in GetRight 4.x, November 1999. Multi-Session Web ProxyWhite Paper, September 2006.

Multi-Session Web Proxy Service v1, released January 2007.S2S Download Accelerator, released October 2007.Multi-Session Web Proxy Service v2, released August 2008.Multi-Session Web Acceleration, released March 2009.Request for comments 2612, June 1999.Request for comments 3040, January 2001.

Patent Application, Vector Routing 20060187820, February 2005.

U.S. Pat. No. 6,339,785, January 2002.U.S. Pat. No. 6,337,974, January 2002.U.S. Pat. No. 7,047,309, May 2006.

BACKGROUND

In computer networks, such as the Internet, end-users utilize variousmethods to download remote data files. These data files contain varioustypes of information which is required by the end-user. In many casesthese files contain certain types of information which cause them tonaturally take longer to download. The ability to speed up the downloadof the remote data files is of value to the end-user as it would savetime and produce a better overall experience.

In particular web-based traffic, using the HTTP protocol, is useful asit allows for data to be downloaded in segments. This ability to segmentdownloads provides an opportunity for devices like the XRoads Networksappliance which already load balance network traffic, including webtraffic, to speed up these data downloads by providing furthersegmenting of a web-download so that multiple segments can bedistributed over multiple WAN links using multiple sessions.

The XRoads Networks appliance already includes a web proxy service,which currently proxy's web requests and load balances those requestsacross multiple links. This method extends that capability to interceptthose sessions based on specific content types and then further split upthose sessions using techniques similar to previous download managerapplications.

Many products today are capable of splitting a data download intomultiple segments; specifically web-based downloads, such as theFreeDownloadManager application which our S2S Download Accelerator isbased on, which was originally developed based on the technologydeveloped by GetRight in 1999.

The problem normal download accelerators is that they do not have theability to split traffic between multiple WAN links, and thus are notable to improve performance by utilizing multiple link and providereliability in the event that a WAN link fails.

Further there are other products on the market today which incorporateproxy services, such as web proxy engines like Squid developed in 2002.These applications receive requests from clients and then proxy thoserequests over the WAN. These devices typically use only a single pathand/or gateway appliance for forwarding their traffic. XRoads Networksprovides a unique solution in comparison as it is able to balanceweb-based traffic across multiple WAN links. This solution wasoriginally developed in late 2006 and released as part of ourpartnership with Netsweeper.

The problem with web proxy devices is that they to do not have theability to split traffic between multiple WAN links, and thus are notable to improve performance by utilizing multiple links and providereliability in the event that a WAN link fails.

XRoads Networks has already solved part of this problem by modifying howour web proxy engine works so that sessions can be split, acrossmultiple WAN links.

Finally, there are other products on the market which receive requestsfrom clients and splits those requests into partial download requestswhich are then distributed across multiple WAN links, these productsthen forward the responses from those requests back to the originalrequestor.

The problem with these new solutions is that while they may be able toforward the inbound connections they lack the ability to balance trafficwithout segmentation, and thus the functionality utilizes a large numberof system resources, i.e. processing power and memory utilization.

It is only when you add the ability to offload traffic to another loadbalancing mechanism which does not require the more processor and memoryintensive functions as segmentation within the same appliance where yousee added benefits. This capability provides for faster throughput andbetter memory handling, thus the aforementioned solutions must usegreater processing power to maintain the information about each sessionwhich reduces its scalability and lowers its overall ROI. This is asignificant difference as it greatly affects pricing and overall marketappeal.

The XRoads Networks solution, as described in this document, takesadvantage of both segmentation and non-segmentation techniques, throughthe use of content based redirection, to maximum each client connectionand thus optimize the overall network connectivity for our customers.

DESCRIPTION OF DRAWINGS

The present invention can be understood and better appreciated from thefollowing detailed descriptions, taken in conjunction with the followingdrawings:

FIG. 1—A pictorial illustration of a typical process by which theMulti-Session Acceleration is constructed and operative in accordancewith the preferred embodiment of the present invention.

DETAILED DESCRIPTION OF PREFERRED EMBODIMENTS

Reference is now made to FIG. 1 that provides the general flow of theproxy controller. The proxy controller, as detailed in the diagram belowconsists of several components, including a content redirection modulewhich incorporates a decision algorithm used to determine which clientrequests (1) are forwarded [based on examining the initial client SYNpacket] to the proxy controller (3), and which client requests (1) orsent on to other mechanisms for load balancing (8). Client requests (1)which are forwarded to our MSA Controller or Proxy Controller (3) areinitially terminated by the Proxy Initiation (4) module which terminatesthe incoming client session and initiates one or more new sessionsacross one or more WAN gateway connections. The Proxy Initiator (4)determines where the new sessions will go by working with the PathSelector (5) which gives the Proxy Initiator (4) the appropriate IPaddress to use from which a new session will be initiated from based onconfiguration information provided to the Proxy Controller (2). The PathSelection (5) keeps track of how many times each configured IP addresshas been provided to the Proxy Initiation (4) module and determineswhich address to provide next based on that information as well as otherlink utilization metrics. Once the new proxy session is ready to beinitiated by the Proxy Initiator (4) another request is made to theSegmentation (6) module to determine whether the proxy'd session can befurther segmented to achieve faster throughput. The Segmentation (6)module then performs several tests to the URL as obtained in theoriginal Client Request (1) to determine if multiple servers exist fromwhich to obtain the remote date or whether any of the remote servers areable to segment the data file being requested on a per session basis. Ifthe Segmentation (6) module determines that segmentation is possible,then the Proxy Initiation (4) will create multiple new sessions from theoriginal Client Request (1) and which are then load balanced using theIP address information from the Path Selector (5). All new sessions arethen sent to the NIC Controller (7) for delivery on to the network.

1. A method for combining routers to provide increased downloadcapabilities for internal clients of a local area network utilizing aproxy controller, where the proxy controller identifies two or morenetwork gateways, receives a connection from the local client oninterface one for a remote data file, said connection consisting of asingle session, this session request is then received by the proxycontroller, the proxy controller then determines whether to proxy theconnection, the proxy controller then determines whether to establishmultiple outbound sessions across interfaces two, three, etc. using theinformation found in the session request from the client and based onthe number of available remote data servers, in the event that the proxycontroller initiates multiple sessions each session shall request aseparate segment of the remote data file from one or more remote dataservers, responses from the outbound initiated sessions are thenreturned to the requesting client in a manner which ensures an errorfree completion to the clients request.
 2. The method of claim 1,wherein the proxy controller determines whether to intercept an incomingclient session and proxy the link based on application identificationtechniques including port number, protocol type, and other stringinformation within the packet.
 3. The method of claim 1, wherein theproxy controller intercepts an initiating request for a remote data fileand determines whether this request should be split into multiplesessions.
 4. The method of claim 1, wherein the each session created bythe proxy controller downloads a different segment of the data file. 5.The method of claim 1, wherein the status of the links is determinebased on probing each interface utilizing methods detailed in patentfiling 20060187820, including gateway testing, and remote device probingin order to determine the status of each available WAN link.
 6. Themethod of claim 1, wherein the determination of how the sessions arebalanced is based on the current load of each WAN link and other aspectsincluding path latency, packet loss, and jitter.
 7. The method of claim1, wherein the proxy controller identifies whether multiple serversexisting from which the data can be downloaded, and if multiple serversare available, attempts to download the individual data segments fromeach different server utilizing different network links.
 8. The methodof claim 3, wherein the interception is determined based on a systemwhich detects the type of content being requested and begins themulti-session segmentation based on that content type.
 9. The method ofclaim 4, wherein each segment is downloaded via a session which isdivided among the various available WAN links.
 10. Traffic which is notintercepted by the proxy controller is then passed to our standard linkload balancing system which provides for the balancing of allnon-proxied sessions.
 11. The method of claim 10, wherein each sessionbalanced uses the methods and functions described in patent filing20060187820, and patent filing 20060187842.